package com.qq.vip.mikuPy2001.bukkit.gui.model;

import com.qq.vip.mikuPy2001.bukkit.gui.WindowsView;
import com.qq.vip.mikuPy2001.bukkit.gui.util.ItemUtil;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.ItemStack;

/**
 *
 * @author MukiPy2001
 */
public class Button extends Module {

    /**
     * 根据平面坐标定义 Button 的位置
     *
     * @param ModuleID Module 的唯一ID
     * @param line Module 所在行数,起始为1
     * @param lineIndex Module 所在列数,起始为1
     * @param itemStack Module 显示的图标
     */
    public Button(String ModuleID, int line, int lineIndex, ItemStack itemStack) {
        this(ModuleID, line, lineIndex, itemStack, false);
    }

    /**
     * 根据箱子内部位置系统定义 Button 的位置
     *
     * @param ModuleID Button 的唯一ID
     * @param index Button 所在的位置
     * @param itemStack Button 显示的图标
     */
    public Button(String ModuleID, int index, ItemStack itemStack) {
        this(ModuleID, index, itemStack, false);
    }

    /**
     * 根据平面坐标定义 Button 的位置
     *
     * @param ModuleID Button 的唯一ID
     * @param line Button 所在行数,起始为1
     * @param lineIndex Button 所在列数,起始为1
     * @param itemStack Button 显示的图标
     * @param show
     */
    public Button(String ModuleID, int line, int lineIndex, ItemStack itemStack, boolean show) {
        this(ModuleID, (line - 1) * 9 + lineIndex - 1, itemStack, show);
    }

    /**
     * 根据箱子内部位置系统定义 Button 的位置
     *
     * @param ModuleID Button 的唯一ID
     * @param index Button 所在的位置
     * @param itemStack Button 显示的图标
     * @param show
     */
    public Button(String ModuleID, int index, ItemStack itemStack, boolean show) {
        super(ModuleID, index, itemStack, show);
        if (ItemUtil.isEmpty(itemStack))
            throw new RuntimeException("Button's itemStack is null");
    }

    /**
     * 从配置文件加载. 详细格式请查阅示例
     *
     * @param ModuleID Button 的唯一ID
     * @param con
     */
    public Button(String ModuleID, ConfigurationSection con) {
        super(ModuleID, con);
        if (ItemUtil.isEmpty(getItemStack0()))
            throw new RuntimeException("Button's itemStack is null");
    }
}
